package com.sxj.corejava.code06_数组;

import java.util.Scanner;

/**
 * @author 石小俊
 * @date 2024年03月12日 20:24
 * 有三个班,每个班有5名学生,提示用户分别输入学生的成绩,将数据保存到二维数组中
 * 计算每个班的平均分,全校的最高分与最低分
 */
public class Test10_练习 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        double[][] arr = new double[3][5];

        // 由于需要比较全校的最高分与最低分
        // 因此,在外层循环之前定义一个最高分与最低分的变量
        double max = 0, min = 100;

        // 外层循环控制班级
        for (int i = 0; i < arr.length; i++) {
            System.out.println("********************开始录入第" + (i + 1) + "个班级的学生信息********************");
            // 需要计算的是每个班级的平均分
            // 因此,在进行内层循环之前定义一个总分
            double sum = 0.0;
            // 内层循环控制班级中的学生
            for (int j = 0; j < arr[i].length; j++) {
                System.out.print("请输入第" + (j + 1) + "名学生成绩:");
                arr[i][j] = sc.nextDouble();
                sum += arr[i][j];
                // 判断当前学生的成绩是否比已知的最高分高,如果高了则替换已知的最高分
                if (arr[i][j] > max) {
                    max = arr[i][j];
                }
                // 判断当前学生的成绩是否比已知的最低分低,如果低了则替换已知的最低分
                min = arr[i][j] < min ? arr[i][j] : min;
            }
            // 内层循环结束之后,计算班级平均分
            System.out.println("第" + (i + 1) + "个班级的平均分为:" + sum / arr[i].length);
        }
        System.out.println("全校最高分为:" + max);
        System.out.println("全校最低分为:" + min);
    }
}
